// vuex所在目录名称一般为store
// vuex是一个插件,安装命令为: npm install vuex --save
// 把需要多个组件共享的变量全部存储在一个对象里面
import Vue from 'vue'
import Vuex from 'vuex'
//导入store的各个组成部分
import mutations from './mutations'
import actions from './actions'
import getters from './getters'
import moduleA from './modules/modulesA'

//安装插件
Vue.use(Vuex)

/*
  单一状态树: 一个项目只有一个Store对象
  创建对象
    state: 保存状态
 */
const state = {
  counter: 1000,
  students: [
    {id: 110, name: 'why', age: 18},
    {id: 111, name: 'kobe', age: 24},
    {id: 112, name: 'james', age: 30},
    {id: 113, name: 'curry', age: 10}
  ],
  info: {
    name: 'kobe',
    age: 40,
    heigth: 1.98
  }
}

const store = new Vuex.Store({
  state, //state中的内容仍然定义在当前文件中,其他模块全部抽走
  mutations,
  actions,
  getters,
  modules: {
    a: moduleA
  }
})

//导出对象
export default store
